1. Field of the Invention
The present invention relates to the field of wireless communication devices. More particularly the present invention relates to performing an Automatic Repeat Request (ARQ) reset procedure in a wireless communication environment.
2. Description of the Related Art
Broadband wireless networks based on various standards (e.g., the Institute of Electronic and Electric Engineers (IEEE) 802.16 based WiMAX standard and its evolution to IEEE 802.16m) provide various types of services such as voice, packet data and so on. In order to provide these kinds of services, control information and data packets are exchanged between a Mobile Station (MS) and a Base Station (BS). The control information is generated by various protocols at the mobile station and the base station, while the data packets are generated by various applications at the mobile station and base stations.
Typically, the wireless communication standards (e.g., 3rd Generation Partnership Project (3GPP) Long Term Evolution (LTE), IEEE 802.20, and IEEE 802.16e-2005) use an Automatic Repeat Request (ARQ) protocol at a Medium Access Control (MAC) layer for reliably in transmitting data packets between the mobile station and the base station. In normal ARQ operation, a transmitting device (e.g., a mobile station or a base station) sends one or more ARQ blocks to a receiving device (e.g., the base station or the mobile station) and waits for an acknowledgment from the receiving device. It is understood that, each of the one or more ARQ blocks is assigned a sequence number. If the receiving device receives the ARQ block successfully, the receiving device sends a positive acknowledgement to the transmitting device. If the receiving device detects that one or more ARQ blocks are missed, then the receiving device sends a negative acknowledgment to the transmitting device. Accordingly, the transmitting device updates an ARQ window based on the ARQ feedback received from the receiving device. Similarly, the receiving device updates an ARQ window which is updated based on the received ARQ blocks.
Typically, at the transmitting device, the ARQ window consists of two pointers. The first pointer (e.g., ARQ TX WINDOW START) is a start of the window and points to the ARQ block with a lowest sequence number which has been transmitted by the transmitting device and not yet positively acknowledged by the receiving device. The second pointer (e.g., ARQ TX NEXT BSN) is a sequence number of the ARQ block which is to be transmitted next by the transmitting device. This value shall reside in the interval ARQ_TX_WINDOW_START to (ARQ_TX_WINDOW_START+ARQ_WINDOW_SIZE), inclusive.
At the receiving device, the ARQ window also consists of two pointers. The first pointer (e.g., ARQ RX WINDOW START) is the start of window that points to the ARQ block with lowest sequence number (not correctly received by the receiving device). The second pointer (e.g., ARQ RX NEXT BSN) is a highest sequence number of the highest ARQ block that is received by the receiving device plus one. This value shall reside in the interval ARQ_RX_WINDOW_START to (ARQ_RX_WINDOW_START+ARQ_WINDOW_SIZE), all inclusive. For reliable transmission of ARQ blocks, it is desirable that the ARQ windows at the transmitting device and the receiving device are in sync. For example, synchronization between the ARQ windows at the transmitting device and the receiving device is lost when there is an error in the wireless channel.
When the synchronization is lost, an ARQ reset procedure is initiated by an ARQ entity of the transmitting device or the receiving device. In case the ARQ reset procedure is initiated at the transmitting device, the ARQ entity disables the transmission of new ARQ blocks and retransmission of negatively acknowledged ARQ blocks. Then, the ARQ entity transmits an ARQ reset message to the ARQ entity at the receiving device and waits for an ARQ reset message from the ARQ entity at the receiving device. Based on the ARQ reset message, the ARQ entity at the receiving device disables the ARQ block reception and sets the first pointer (e.g., ARQ_RX_WINDOW_START) to 0, sets the second pointer (e.g., ARQ RX NEXT BSN) to 0, discards all incomplete MAC Service Data Units (SDUs) received in the ARQ blocks and enables the ARQ block reception. Then, the ARQ entity at the receiving device transmits an ARQ reset message to the ARQ entity at the transmitting device. Accordingly, the ARQ entity at the transmitting device sets the first pointer (e.g., ARQ_TX_WINDOW_START) to 0, sets the second pointer (e.g., ARQ TX NEXT BSN) to 0, discards the ARQ blocks which are in the discarded state and then enables the transmission of the ARQ blocks. It is understood that the ARQ blocks are said to be in the discarded state when the acknowledgement is not received for an ARQ block within an ARQ block life time. A similar ARQ reset procedure is performed when the ARQ reset procedure is initiated by the ARQ entity of the receiving device, except the ARQ entity at the receiving device sends an ARQ repeat request to the transmitting device's ARQ entity.
In the current ARQ reset procedure, the ARQ entity at the transmitting device disables transmission of new ARQ blocks and also the ARQ blocks which are negatively acknowledged and then sends the ARQ reset message to the ARQ entity at the receiving device. At the time of transmission of the ARQ reset message, no new Hybrid Automatic Repeat reQuest (HARQ) process carrying a MAC layer packet with new ARQ blocks is initiated. However, there may be HARQ processes which are active and transmitting the ARQ blocks generated before disabling transmission of new ARQ blocks. It can be noted that the HARQ process carrying the MAC layer packet with the ARQ reset message may be completed before completion of the HARQ processes carrying the ARQ blocks. Consequently, the ARQ entity at the receiving device may receive the ARQ reset message earlier than the ARQ blocks generated prior to transmission of the ARQ reset message by the transmitting device.
Basically, HARQ is used at the physical layer to transmit a MAC layer packet with ARQ blocks. The MAC layer packet consists of MAC Packet Data Units (PDUs) including ARQ blocks. In HARQ, multiple HARQ processes (each HARQ process carrying a MAC layer packet) are active simultaneously. It is understood that, the MAC layer packets transmitted by the transmitting device are received out of order due to multiple HARQ processes, each trying different re-transmission attempts due to varying channel conditions.
Since, the MAC layer packets carried in the HARQ process consists of multiple MAC PDUs belonging to different connections, the transmitting device may not be able to terminate the ongoing HARQ transmissions when the ARQ reset message is transmitted. In other words, if the transmitting device terminates the ongoing HARQ transmissions, data corresponding to other connections may be lost.
Alternatively, HARQ reordering can be performed at the receiving device prior to processing the MAC PDUs in the MAC layer packets. However, the HARQ reordering may deteriorate Quality of Service (QoS) if performed across connections as MAC PDUs of one connection are delayed due to MAC PDUs of other connections.